home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / ip / ka9q / aztecnos.arc / REGS.H < prev    next >
Encoding:
C/C++ Source or Header  |  1989-02-13  |  1017 b   |  45 lines

  1. #ifndef    FP_SEG
  2.  
  3. extern unsigned short dbase;
  4. extern unsigned short cbase;
  5.  
  6. union reg {
  7.     struct half {
  8.         char low;
  9.         char high;
  10.     } byte;
  11.     unsigned short word;
  12. };
  13. struct regs {
  14.     union reg ax,bx,cx,dx,si,di,ds,es;
  15. };
  16.  
  17. /* Macros to simulate Turbo-C style register pseudovariables */
  18. #define    _AX    regs.ax.word
  19. #define    _AL    regs.ax.byte.low
  20. #define    _AH    regs.ax.byte.high
  21. #define    _BX    regs.bx.word
  22. #define    _BL    regs.bx.byte.low
  23. #define    _BH    regs.bx.byte.high
  24. #define    _CX    regs.cx.word
  25. #define    _CL    regs.cx.byte.low
  26. #define    _CH    regs.cx.byte.high
  27. #define    _DX    regs.dx.word
  28. #define    _DL    regs.dx.byte.low
  29. #define    _DH    regs.dx.byte.high
  30. #define    _DI    regs.di.word
  31. #define    _SI    regs.si.word
  32. #define    _DS    regs.ds.word
  33. #define    _ES    regs.es.word
  34.  
  35. /* Segment number of pointer */
  36. #define    FP_SEG(x)    (unsigned short)((sizeof(x) == 4 ? ((long)(x) >> 16) : dbase))
  37. /* Offset of pointer */
  38. #define FP_OFF(x)    ((unsigned short)((long)(x) & 0xffff))
  39.  
  40. #define    FLAG_CARRY    (1 << 0)    /* Carry flag */
  41.  
  42.  
  43. #endif    FP_SEG
  44.  
  45.